GdkWindow *window,
gdouble window_root_x,
gdouble window_root_y,
+ gdouble screen_width,
+ gdouble screen_height,
guint index_,
gdouble value,
gdouble *axis_value)
if (axis_info.use == GDK_AXIS_X)
{
if (axis_width > 0)
- scale = gdk_screen_get_width (gdk_window_get_screen (window)) / axis_width;
+ scale = screen_width / axis_width;
else
scale = 1;
else
{
if (axis_width > 0)
- scale = gdk_screen_get_height (gdk_window_get_screen (window)) / axis_width;
+ scale = screen_height / axis_width;
else
scale = 1;
GdkWindow *window,
gdouble window_root_x,
gdouble window_root_y,
+ gdouble screen_width,
+ gdouble screen_height,
guint index,
gdouble value,
gdouble *axis_value);
gdouble *y)
{
GdkDevice *device;
- GdkWindow *impl_window;
+ GdkWindow *impl_window, *root_window;
gint root_x, root_y;
gdouble temp_x, temp_y;
gint i;
device = GDK_DEVICE (device_wintab);
+ root_window = gdk_screen_get_root_window (gdk_window_get_screen (window));
impl_window = _gdk_window_get_impl_window (window);
temp_x = temp_y = 0;
&axes[i]);
else
_gdk_device_translate_screen_coord (device, window,
- root_x, root_y, i,
+ root_x, root_y,
+ gdk_window_get_width (root_window),
+ gdk_window_get_height (root_window),
+ i,
device_wintab->last_axis_data[i],
&axes[i]);
if (use == GDK_AXIS_X)
_gdk_device_translate_window_coord (device, window, j, value, &axes[j]);
else
{
+ GdkWindow *root_window;
gint root_x, root_y;
+ root_window = gdk_screen_get_root_window (gdk_window_get_screen (window));
/* FIXME: Maybe root coords chaching should happen here */
gdk_window_get_origin (window, &root_x, &root_y);
_gdk_device_translate_screen_coord (device, window,
root_x, root_y,
+ gdk_window_get_width (root_window),
+ gdk_window_get_height (root_window),
j, value,
&axes[j]);
}